#ifndef _CPU_H__
#define __CPU_H__

#pragma once

using namespace System;

namespace SharpSDL
{	
	namespace ManagedSDL
	{
		public ref struct CPU
		{
		public:
			enum class CPUFeature
			{
				Present,
				Absent
			};
			CPU(void);
			CPUFeature MMXSupport(void);
			CPUFeature RDTSCSupport(void);
			CPUFeature Now3DSupport(void);
			CPUFeature MMXExtSupport(void);
			CPUFeature Now3DExtSupport(void);
			CPUFeature SSESupport(void);
			CPUFeature SSE2Support(void);
			CPUFeature AltiVecSupport(void);
		private:
			CPUFeature MMX;
			CPUFeature RDTSC;
			CPUFeature Now3D;
			CPUFeature MMXExt;
			CPUFeature Now3DExt;
			CPUFeature SSE;
			CPUFeature SSE2;
			CPUFeature AltiVec;
		};
	}
}

#endif